Playback of digital media data has become a common feature on devices such as smartphones, tablet computers, personal computers, gaming consoles, and set-top boxes. As the distribution and playback of digital media data has become more prevalent, various digital rights management (“DRM”) systems have been developed to protect media data from unauthorized copying, distribution and playback. Typically, a DRM system uses encryption to protect media data such that only an authorized party can play it back. The authorized party can then use the DRM system to decrypt the media data for playback. Before encryption, the media data may be compressed, or encoded, to reduce the bit rate of the media data. If so, the media data is decompressed, or decoded, after decryption but before playback.
Often, the focus of a DRM system is operations that happen at a playback device, since that is where decrypted media data may be most vulnerable. In some DRM systems, at a playback device, a media source provides encrypted media data to a protected media process (also called a protected media pipeline). The media source is untrusted, but the protected media process is understood to be secure through guarantees provided by an operating system, by obfuscating media playback software, etc. In this architecture, the encrypted media data is “opaque” to the media source. That is, for the media source, due to security provided by encryption, the encrypted media data cannot be understood by an unauthorized party (so long as the encryption is not cracked). On the other hand, following decryption in this architecture, the encrypted media data is no longer opaque—it is accessible at various stages within the protected media process.
While a protected media process provides a level of security against unauthorized access, copying, distribution, playback, etc., it relies on assurances provided by software that has access to the resources of the device. That software may be compromised, however. For example, the software may be hacked or otherwise controlled by a malicious user. In particular, the “clear” media data produced by a decryptor in the protected media process is vulnerable to interception, and keys protected only with software may be susceptible to misuse.
For some types of media data (e.g., low-quality video content, old video content), the assurances provided by a typical software-protected DRM system may be sufficient for the owner or provider of the media data. For other types of media data (e.g., high-quality or high-resolution video content, new releases), such assurances might not provide a sufficient level of confidence to the owner/provider that the media data is secure. For this reason, some owners/providers of media data seek assurances provided by a hardware-protected DRM system. In general, in a hardware-protected DRM system, keys and decrypted media data are protected at the hardware level and/or secure firmware level (a layer below the operating system). The hardware level and secure firmware level are not accessible by software processes. Software such as a media player, media decoder or operating system is untrusted. Thus, the software cannot access the hardware-protected keys and decrypted media data. Instead, keys and media data are available to the untrusted software only in encrypted form, and hence are opaque to the untrusted software. While hardware-protected DRM systems tend to offer better assurances of security than software-protected DRM systems, they can be inflexible. In particular, the flexibility of software-controlled media decoding is lost or hampered in hardware-protected DRM systems.